package com.itservice.uzalarm;

import java.io.IOException;

import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;


public class UzalarmMediaPlayer implements OnCompletionListener 
{
	public static MediaPlayer	_mp		= null;
	public static AudioManager	_am		= null;
	public static int			NowVol	= 0;

	public	Context	context		= null;
	public	Thread	mThread		= null;
	public	String	mFilePath	= null;
	
	//=========================================================================
	// コンストラクタ
	//=========================================================================
	public UzalarmMediaPlayer(Context mContext, String mPath)
	{
		// ファイルパス取得
		mFilePath	= mPath;
		context		= mContext;
	}

	//=========================================================================
	//	Alarm Start
	//	2010.11.03 Created On MAGEPON
	//=========================================================================
	public void AlarmStart()
	{
		try
		{
			if(null == _mp)
			{
				//	ローカルファイルを再生  
				_mp = new MediaPlayer();
				_mp.setDataSource(mFilePath);
				_mp.setOnCompletionListener(this);
				Alarm_Volume_Set();	//	Volume設定
			}
		}
		catch (IllegalArgumentException e1)
		{
			e1.printStackTrace();
		}
		catch (IllegalStateException e1)
		{
			e1.printStackTrace();
		}
		catch (IOException e1)
		{
			e1.printStackTrace();
		}

		try
		{
			if (!_mp.isPlaying()) 
			{
				_mp.prepare();
				_mp.seekTo(0);
				_mp.start();
			}
		}
		catch (IllegalStateException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	//=========================================================================
	//	Alarm Stop
	//	2010.11.03 Created On MAGEPON
	//=========================================================================
	public void AlarmStop() 
	{
	//	super.onStop();
		if (_mp != null)
		{
			if (_mp.isPlaying()) 
			{
				//	アラーム停止
				_mp.stop();
				 //	メディア音量を元に戻す
				_am.setStreamVolume(AudioManager.STREAM_MUSIC, NowVol, 0);
			}
			_mp = null;
		}
	}

	//=========================================================================
	//	Alarm SOUND VOLUME SET
	//	2010.11.03 Created On MAGEPON
	//=========================================================================
	public void Alarm_Volume_Set()
	{
		int maxvolume = 0;
		
		//	メディアサービス取得
		_am	= (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

		//	今の音量保存
		NowVol 		= _am.getStreamVolume(AudioManager.STREAM_MUSIC);

		//	MAX音量取得
		maxvolume 	= _am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

		//	着信音量を設定
		_am.setStreamVolume(AudioManager.STREAM_MUSIC, maxvolume, 0);
	}

	// 再生終了時処理
	public void onCompletion(MediaPlayer mp)
	{
		try
		{
			if(null != _mp)
			{
				_mp.start();
			}
		}
		catch(IllegalStateException e)
		{
			e.printStackTrace();
		}
	}

}
